三大类:
数值,字符串,日期时间
数值
--
### 整数,int
int 4个字节。
还有占用其他空间的整型:
tinyint 1
smallint 2
mediumint 3
int 4
bigint 8
![](CFD306B42684E29B6EFD216B5C82C145.png)
如何选择:
通过业务逻辑判断!常见的是 tinyint,int!
mysql的整型,有php整型不具备的概念:
one,无符号
只能表示整数或0。那么最大的整数会很大!
默认是 有符号!可通过 整型的 unsigned选项,int unsigned 设置整型无符号
![](DC00CE2ABDD93B69C326725A29AEB7A2.png)
![](6774DBEC79D4B4B5BD8139642C7CEF4F.png)
无符号的:
![](3C0BB4BE304565410601988E0FB0583C.png)
two,显示宽度
显示宽度,不决定整型的范围。而决定 在显示出该数之后,如果宽度不够,则采用前导零不齐!此时需要 额外的属性 zerofill 来设置!
![](93A4C79DBAB2B355FF44034C32E1FA67.png)
可见 无符号,默认的显示宽度是 10,因此全都使用0来补齐。
可以设置整型的显示宽度!在 int(M)即可!
![](BC2D0560933346208D5889B83BC383F4.png)
255个宽度就可以了!
注意,如果超出了宽度范围,则直接显示!
![](76D02506BF9BA013654485CFF51809EF.png)
额外的,mysql中,没有 布尔型!
但是 存在 Boolean这个关键字,表示 tinyint(1)
![](75F04B2F644CA6643F617A8DE5FDF7F9.png)
典型的,0表示假,1表示真!
### 浮点数,float,double
单精度,float,4个字节
双精度,double,8个字节
![](6A82EC2025CBA28A8A68C4CE1D8C3D8F.png)
双精度:
![](E9B691961F941FBBF8741D7A6153D3CA.png)
在定义浮点数,典型的需要指明其 有效位数,和 小数位数
float(M,D)
double(M,D)
M:所有的有效位数
D:其中的小数位数
以上两个值,决定一个浮点数的有效范围!
![](7A94014EBD9143F89A42701B2CC95141.png)
典型的浮点数
float(10, 2);
99999999.99
注意,浮点数,近似值,不是精确值!如果一个数,很大,接近最大值,可能出错!
![](8AA9271641B0369529E8A92342FA8086.png)
一旦出现精确数据(小数)需要保存可以使用,下面的定点数
### 定点数,decimal
小数点是固定的!
decmal,与定义浮点数一致,也有 有效位数与小数位数的概念:
decimal(M,D)
![](9A86D607EBBB3946B9E853696E17F1F6.png)
不是 数的形式存储,类似于字符串的形式!
![](B2874CA8CEF51DF6CBC6910FC448EA77.png)
注意,关于小数:
1,支持 科学计数法
![](3B43A5D0E656337CB970E6BE99B7F821.png)
2,同样支持 unsigned,无符号!
3,同样支持 zerofill,
![](6782FC008D8F4030C36DDED561F5D2A5.png)
TIP:小数的M,即表示有效范围,也表示显示宽度!(而整数的M只表示显示宽度)